package com.zhoux.api.io.raf;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * @author taoyi
 * @version 1.0
 * @date 2021/3/24 16:02
 *
 * 本类用于测试 java.io.RandomAccessFile类    随机访问文件
 * RAF 是专门用力读写文件的 API, 其基于指针对文件任意位置进行读写操作, 因此读写方式灵活
 */
public class RAFDemo {
    public static void main(String[] args) {
        /**
         *  常用构造器
         *  RandomAccessFile(File file, String mode)
         *  RandomAccessFile(String fileName, String mode)
         *  第一个参数为要操作的文件, 第二个参数为操作模式
         *  操作模式是一个字符串, 支持两个值:
         *  "r": 只读模式, 仅对文件做读取操作。  r : read  读
         *  "rw" : 读写操作, 对文件即可读又可写。 w : write  写
         */

        // 想对目标目录下的 raf.dat 文件进行操作
        RandomAccessFile raf = null;
        File file = new File(".\\raf.dat");
        try {
            raf = new RandomAccessFile(file,"rw");
            try {
                raf.write(1); // 向文件中写入一个字节, 写入的是给定的 int 值所对应的二进制的“低八位”
                System.out.println("写入成功！");
            } catch (IOException e) {
                System.out.println("写入失败！");
                e.printStackTrace();
            }
            System.out.println("执行完毕！");
        } catch (FileNotFoundException e) {
            System.out.println("执行失败！");
            e.printStackTrace();
        }finally {
            try {
                raf.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }
}
